package com.ruoyi.ftrl.service;

import java.util.List;
import com.ruoyi.ftrl.domain.ControlValve;
import com.ruoyi.ftrl.domain.Dto.AutoSendDto;
import com.ruoyi.ftrl.domain.Dto.HandSendDto;

/**
 * 温控阀采集数据Service接口
 * 
 * @author dihang
 * @date 2024-08-08
 */
public interface IControlValveService 
{

    public void heartbeat();
    /**
     * 查询温控阀采集数据
     * 
     * @param id 温控阀采集数据主键
     * @return 温控阀采集数据
     */
    public ControlValve selectControlValveById(Long id);

    /**
     * 查询温控阀采集数据列表
     * 
     * @param controlValve 温控阀采集数据
     * @return 温控阀采集数据集合
     */
    public List<ControlValve> selectControlValveList(ControlValve controlValve);

    /**
     * 新增温控阀采集数据
     * 
     * @param controlValve 温控阀采集数据
     * @return 结果
     */
    public int insertControlValve(ControlValve controlValve);

    /**
     * 修改温控阀采集数据
     * 
     * @param controlValve 温控阀采集数据
     * @return 结果
     */
    public int updateControlValve(ControlValve controlValve);

    /**
     * 批量删除温控阀采集数据
     * 
     * @param ids 需要删除的温控阀采集数据主键集合
     * @return 结果
     */
    public int deleteControlValveByIds(Long[] ids);

    /**
     * 删除温控阀采集数据信息
     * 
     * @param id 温控阀采集数据主键
     * @return 结果
     */
    public int deleteControlValveById(Long id);

    /**
     * 温控阀发送指令
     */
    int sendConxtrolValve(HandSendDto handSendDto) throws InterruptedException;
    List<String> sendControlValve(HandSendDto handSendDto) throws InterruptedException;

    /**
     * 接收温控阀数据
     */
    String collectionControlValve();

    int AutoSendConxtrolValve(AutoSendDto autoSendDto);

    /**
     * 查询户用流量阀采集数据列表
     */
    List<ControlValve> selectControlValveListFiow(ControlValve controlValve);

    /**
     * 查询户用锁闭阀采集数据列表
     */
    List<ControlValve> selectControlValveListLock(ControlValve controlValve);

    /**
     * 查询户用锁闭阀采集数据列表
     */
    List<ControlValve> selectControlValveListUnit(ControlValve controlValve);

    int sendConxtrolValveLock(String roomNo, String state);

    /**
     * 拉取最新阀门数据 判断当前房间的户型并更新
     */
    void updateHome();

    Object selectControlValveLists();

    Object selectControlValveListss();

    Object selectControlValveListsss();
}
